#ifndef CAIROICON_H
#define CAIROICON_H
/**
*@file cairoicon.h
*/
#include <QWidget>
/// \class CairoIcon
class CairoIcon : public QWidget
{
    Q_OBJECT
public:
     /** Konstruktor
       * @param fileName nazwa pliku ktory bedzie nasza ikona
       * @param widgetName, label nazwy ikony jaka bedzie sie pojawiac podczas najechania kursoru myszki
       */
    CairoIcon(const QString &fileName,const QString &widgetName);
     /** Metoda pomocnicza, ustawiajaca ikone
       * @param fileName nazwa pliku ktory bedzie nasza ikona
       */
    void setIcon(const QString &fileName);
     /** Metoda pomocnicza, ustawiajaca label ikony
       * @param widgetName, label nazwy ikony jaka bedzie sie pojawiac podczas najechania kursoru myszki
       */
    void setName(const QString &name);
    /** Zdarzenie odswiezania ekranu
       * @param event, nieuzywany
       */
    void paintEvent ( QPaintEvent* );
    /** Zdarzenie najechania kursora myszki na ikone
       * @param event, nieuzywany
       */
    void enterEvent ( QEvent * event );
    /** Zdarzenie opuszczenia ikony przez kursor myszki
       * @param event, nieuzywany
       */
    void leaveEvent ( QEvent * event );
    /** Zdarzenie wcisniecia przycisku
       * @param event, typ zdarzenia, generuje qt
       */
    void mousePressEvent ( QMouseEvent * event );
 private:
    /// Zmienna przechowujaca nasza ikone
    QPixmap pix;
    /// Zmienna przechowujaca tytul naszej ikony
    QString label;
    /// Zmienna pomocnicza, przechowujaca wspolczynnik rozmiaru naszej ikony
    double mn;
    /// zmienna pomocnicza przechowyjaca przesuniecie ikony wzgledem srodka ukladu wspolrzednych
    int x;
 signals:
    /** Sygnal emitowany podczas zdarzenia klikniecia na ikone
       */
    void clicked();
};

#endif // CAIROICON_H
